package com.zdkj.subway.check.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import java.math.BigDecimal;
import java.util.Date;

/**
 * TVM票款差异审核
 */
@Data
@TableName("sw_au_tvm_amount_defference")
public class FareDifferencesInAudit {
    /**
     * 唯一标识
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id;
    /**
     * TVM结账单据接收纸币金额（分）
     */
    BigDecimal tvmBillReceivePapaer;
    /**
     * TVM结账单据接收硬币金额（分）
     */
    BigDecimal tvmBillReceiveCoins;
    /**
     * TVM结账单据纸币找零金额（分）
     */
    BigDecimal tvmBillNoteChange;
    /**
     * TVM结账单据硬币找零金额（分）
     */
    BigDecimal tvmBillCoinChange;
    /**
     * TVM结账单据现金售票金额（分）
     */
    BigDecimal tvmBillCashSellTicket;
    /**
     * TVM结账单据现金充值金额（分）
     */
    BigDecimal tvmBillCashRecharge;
    /**
     * TVM结账单据现金退款金额（分）
     */
    BigDecimal tvmBillCashReturn;
    /**
     * TVM结账单据电子售票金额（分）
     */
    BigDecimal tvmBillElecSellTicket;
    /**
     * TVM结账单据电子充值金额（分）
     */
    BigDecimal tvmBillElecRecharge;
    /**
     * TVM结账单据电子退款金额（分）TVM结账单据电子退款金额（分）
     */
    BigDecimal tvmBillElecReturn;
    /**
     * 补币金额（分）
     */
    BigDecimal supplementMoney;
    /**
     * SC系统现金售卖金额（分）
     */
    BigDecimal scCashSellTicket;
    /**
     * SC系统现金充值金额（分）
     */
    BigDecimal scCashRecharge;
    /**
     * SC系统现金退款金额（分）
     */
    BigDecimal scCashReturn;
    /**
     * LC系统现金售卖金额（分）
     */
    BigDecimal lcCashSellTicket;
    /**
     * LC系统现金充值金额（分）
     */
    BigDecimal lcCashRecharge;
    /**
     * LC系统现金退款金额（分）
     */
    BigDecimal lcCashReturn;
    /**
     * ACC系统现金售卖金额（分）
     */
    BigDecimal accCashSellTicket;
    /**
     * ACC系统现金充值金额（分）
     */
    BigDecimal accCashRecharge;
    /**
     * ACC系统现金退款金额（分）
     */
    BigDecimal accCashReturn;
    /**
     * SC系统电子售卖金额（分）
     */
    BigDecimal scElecSellTicket;
    /**
     * SC系统电子充值金额（分）
     */
    BigDecimal scElecRecharge;
    /**
     * SC系统电子退款金额（分）
     */
    BigDecimal scElecReturn;
    /**
     * LC系统电子售卖金额（分）
     */
    BigDecimal lcElecSellTicket;
    /**
     * LC系统电子充值金额（分）
     */
    BigDecimal lcElecRecharge;
    /**
     * LC系统电子退款金额（分）
     */
    BigDecimal lcElecReturn;
    /**
     * ACC系统电子售卖金额（分）
     */
    BigDecimal accElecSellTicket;
    /**
     * ACC系统电子充值金额（分）
     */
    BigDecimal accElecRecharge;
    /**
     * ACC系统电子退款金额（分）
     */
    BigDecimal accElecReturn;
    /**
     * 单台设备协查系统金额
     */
    BigDecimal singleDeviceSysMoney;
    /**
     * 单台设备协查差异金额
     */
    BigDecimal singleDeviceDiffMoney;
    /**
     * 分钱箱审核系统金额
     */
    BigDecimal boxAuditSysMoney;
    /**
     * 是否加入SC层级差异协查
     */
    String isAddScLevelAssist;
    /**
     * 是否加入LC层级差异协查
     */
    String isAddLcLevelAssist;
    /**
     * 是否加入ACC层级差异协查
     */
    String isAddAccLevelAssist;
    /**
     * 收入结算开始日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date incomeSettleBeginTime;
    /**
     * 收入结算结束日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date incomeSettleEndTime;
    /**
     * 收入结算单ID（关联车站收入结算的ID）
     */
    Integer incomeSettleId;
    /**
     * 线路编码
     */
    String lineCode;
    /**
     * 车站编码
     */
    String stationCode;
    /**
     * TVM编号
     */
    String tvmCode;
    /**
     * 卸载状态
     */
    String boxUninstallStatus;
    /**
     * 系统金额（分）
     */
    BigDecimal systemMoney;
    /**
     * TVM结账单据金额
     */
    BigDecimal tvmBillOrderMoney;
    /**
     * TVM卸载显示金额
     */
    BigDecimal tvmUnloadMoney;
    /**
     * 卸载实点金额（分）
     */
    BigDecimal actualMoney;
    /**
     * 手工清出金额（分）
     */
    BigDecimal handOutMoney;
    /**
     * 差异金额
     */
    BigDecimal diffMoney;
    /**
     * 结账单据自身差异金额
     */
    BigDecimal statementDiffAmount;
    /**
     * 收入日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date recordTime;
    /**
     * 核对数据来源
     */
    String dataSource;
    /**
     * 数据来源
     */
    String sysDataSource;
    /**
     * 结账单据现金部分主键关联ID
     */
    Integer settleBillCashId;
    /**
     * 结账单据电子部分主键关联ID
     */
    Integer settleBillElecId;
    /**
     * 是否审核完成
     */
    String auditStatus;
    /**
     * 审核日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    Date auditTime;
    /**
     * 协查状态
     */
    String assistInvestStatus;
    /**
     * 差异原因
     */
    String diffReason;
    /**
     * 是否加入结账单据协查
     */
    String isAddSettleorderAssist;
    /**
     * 是否加入票款差异协查
     */
    String isAddPricediffAssist;
    //String isAddLevelAssist;
    /**
     * 是否加入单台设备差异协查
     */
    String isAddSinglerAssist;
    /**
     * 创建人ID
     */
    Integer creatorId;
    /**
     * 创建人名称
     */
    String creatorName;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date createTime;

    //2021-01-23优化
    /**
     * 客值人员工号
     */
    String passengerJobNo;

    /**
     * 客值人员名称
     */
    String passengerJobName;
    /**
     * 更新人工号
     */
    String updateJobNo;
    /**
     * 更新人名称
     */
    String updateJobName;
    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date updateTime;
    /**
     * 是否加入报表差错
     */
    String isAddReprotError;

    /**
     * 通知状态
     */
    String noticeSate;
    /**
     * 通知时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date sendTime;

    //新增单台设备字段
    /**
     * 单台设备系统现金售卖金额（分）
     */
    BigDecimal singleCashSellTicket;
    /**
     * 单台设备系统现金充值金额（分）
     */
    BigDecimal singleCashRecharge;
    /**
     * 单台设备系统现金退款金额（分）
     */
    BigDecimal singleCashReturn;
    //是否是补提交状态
    /**
     * 是否补录：0：否 1：是
     */
    String additionalRecordingStatus;
    /**
     * 删除标志
     */
    String delFlag;
    /**
     * 作废状态：0未作废 1已作废
     */
    String invalidStatus;

    //报表修改状态(0:未完成，1:已完成，2:修改中)
    @TableField(exist = false)
    String isModify;

    @TableField(exist = false)
    String lineName;

    @TableField(exist = false)
    String stationName;

    @TableField(exist = false)
    String boxUninstallStatusName;

    @TableField(exist = false)
    String auditStatusName;

    @TableField(exist = false)
    String assistInvestStatusName;

    @TableField(exist = false)
    String dataSourceName;

	 //审核人工号
	String auditPersonCode;
	//审核人名称
	String auditPersonName;
	//补提交人工号
    String repairSubmitJobNo;
    //补提交人姓名
    String repairSubmitJobName;
    //补提交时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date repairSubmitTime;
    /**
     * 修改原因备注
     */
    String reasonRemark;
}
